﻿//$(document).ready(TB_launch);

// function for adding Thickbox to elements of class .thickbox
// wrapped by Christian Montoya for uses other than $(document).ready
function TB_launch() {
    $("a.thickbox").click(function () {
        var t = this.title;
        TB_show(t, this.href);
        this.blur();
        return false;
    });
}
function tb_init(domChunk) {
    $(domChunk).click(function () {
        var t = this.title || this.name || null;
        var a = this.href || this.src;
        var g = this.rel || false;
        TB_show(t, a, g);
        this.blur();
        return false;
    });
}
function Cf_TB_show(obj) {//Confirm_TB_show
    if (confirm('您确定要“' + obj.title + '”吗？')) {
        return TB_show(obj.title, obj.href);
    }
    return false;
}
function ATB_show(obj) {
    return TB_show(obj.title, obj.href, false);
}
function ATB_showReload(obj, isReload) {
    return TB_show(obj.title, obj.href, isReload);
}
function TB_show(caption, url, isReload) { //function called when the user clicks on a thickbox link
    try {
        $("body")
		.append("<div id='TB_overlay'></div><div id='TB_window'></div>");
        $("#TB_overlay").css("opacity", "0.5");
        $("#TB_overlay").css("filter", "alpha(opacity=50)");
        $("#TB_overlay").css("-moz-opacity", "0.5");
        $(window).resize(TB_position);
        $("body").append("<div id='TB_load'><div id='TB_loadContent'><img src='/img/Loading.gif' /></div></div>");
        $("#TB_overlay").show();
        var urlString = /.jpg|.jpeg|.png|.gif|.html|.htm/g;
        var urlType = url.match(urlString);

        if (url.indexOf("?") < 0) {
            url = url + "?";
        }
        url = url + "&rnd=" + Math.random();

        if (urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || url.indexOf('/Img/Show/') > 0) {//code to show images

            var imgPreloader = new Image();
            imgPreloader.onload = function () {

                // Resizing large images added by Christian Montoya
                var de = document.documentElement;
                var x = (self.innerWidth || (de && de.clientWidth) || document.body.clientWidth) - 50;
                var y = (self.innerHeight || (de && de.clientHeight) || document.body.clientHeight) - 80;
                if (imgPreloader.width > x) {
                    imgPreloader.height = imgPreloader.height * (x / imgPreloader.width);
                    imgPreloader.width = x;
                    if (imgPreloader.height > y) {
                        imgPreloader.width = imgPreloader.width * (y / imgPreloader.height);
                        imgPreloader.height = y;
                    }
                }
                else if (imgPreloader.height > y) {
                    imgPreloader.width = imgPreloader.width * (y / imgPreloader.height);
                    imgPreloader.height = y;
                    if (imgPreloader.width > x) {
                        imgPreloader.height = imgPreloader.height * (x / imgPreloader.width);
                        imgPreloader.width = x;
                    }
                }
                // End Resizing

                TB_WIDTH = imgPreloader.width + 30;
                TB_HEIGHT = imgPreloader.height + 60;
                $("#TB_window").append("<img id='TB_Image' src='" + url + "' width='" + imgPreloader.width + "' height='" + imgPreloader.height + "' alt='" + caption + "'/>" + "<div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton'></a></div>");
                $("#TB_closeWindow").click(function () { return TB_remove(isReload) });
                $("#TB_Image").click(function () { return TB_remove(isReload) }); // close when image clicked added by Christian Montoya
                TB_position();
                $("#TB_load").remove();
                $("#TB_window").slideDown("normal");
            }

            imgPreloader.src = url;
            return false;
        }

        //if(urlType == '.htm' || urlType == '.html'){//code to show html pages

        var queryString = url.replace(/^[^\?]+\??/, '');
        var params = parseQuery(queryString);

        TB_WIDTH = (params['width'] * 1);
        if (TB_WIDTH > 0)
            TB_WIDTH = TB_WIDTH + 30
        else
            TB_WIDTH = 450;
        TB_HEIGHT = (params['height'] * 1);
        if (TB_HEIGHT > 0)
            TB_HEIGHT = TB_HEIGHT + 40
        else
            TB_HEIGHT = 300;
        ajaxContentW = TB_WIDTH - 30;
        ajaxContentH = TB_HEIGHT - 45;
        $("#TB_window").append("<div id='TB_closeAjaxWindow'><span class='lf'>" + caption + "</span><a href='#' id='TB_closeWindowButton' title='关闭'></a></div><div id='TB_ajaxContent' style='width:" + ajaxContentW + "px;height:" + ajaxContentH + "px;'></div>");
        $("#TB_closeWindowButton").click(function () { return TB_remove(isReload) });
        $("#TB_ajaxContent").load(url, function () {
            TB_position();
            $("#TB_load").remove();
            $("#TB_window").slideDown("normal");
        });
        //}

    } catch (e) {
        alert(e);
    }
    return false;
}

//helper functions below

function TB_remove(isReload) {
    // #TB_load removal added by Christian Montoya; solves bug when overlay is closed before image loads
    $("#TB_window").fadeOut("fast", function () { $('#TB_window,#TB_overlay,#TB_load').remove(); });
    if (isReload == true) {
        document.location.reload();
    }
    return false;
}

function TB_position() {
    var de = document.documentElement;
    var w = self.innerWidth || (de && de.clientWidth) || document.body.clientWidth;
    var h = self.innerHeight || (de && de.clientHeight) || document.body.clientHeight;

    if (window.innerHeight && window.scrollMaxY) {
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
        yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        yScroll = document.body.offsetHeight;
    }

    $("#TB_window").css({
        width: TB_WIDTH + "px", height: TB_HEIGHT + "px",
        left: ((w - TB_WIDTH) / 2) + "px", top: ((h - TB_HEIGHT) / 2) + "px"
    });
    $("#TB_overlay").css("height", yScroll + "px");
}
function IsJosn(obj) {
    return typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
}
function IsStringJosn(obj) {
    return obj.length > 0 && obj.slice(0, 1) == '{' && obj.substring(obj.length - 1) == '}';
}
function parseQuery(query) {
    var Params = new Object();
    if (!query) return Params; // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) continue;
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}
function ajaxPostEnCode(v) {
    if (v)
        return v.replace(/\+/g, "%2B").replace(/\&/g, "%26");
    else
        return "";
}
function ajaxPostOn(callBack) {
    if (callBack == undefined) callBack = null;
    if (isAlert == undefined) isAlert = true;
    return _ajaxPost(window.location.href, callBack, true);
}
function ajaxPostOn(callBack, isAlert) {
    if (callBack == undefined) callBack = null;
    if (isAlert == undefined) isAlert = true;
    return _ajaxPost(window.location.href, callBack, isAlert);
}
function ajaxPost(postUrl, callBack) {
    return _ajaxPost(postUrl, callBack, true);
}
function _ajaxPost(postUrl, callBack, isAlert) {
    var pd = "";
    var type = "";
    $("input").each(function () {
        var item = $(this);
        if (item.attr("name")) {
            type = item.attr("type");
            if (type == "text" || type == "hidden" || type == "password") {
                pd += "&" + item.attr("name") + "=" + ajaxPostEnCode(item.val());
            }
            else if (type == "checkbox" || type == "radio") {
                type = item.attr("checked");
                if (type) {
                    pd += "&" + item.attr("name") + "=" + ajaxPostEnCode(item.val());
                }
            }
        }
    });
    $("select").each(function () {
        var item = $(this);
        if (item.attr("name")) {
            pd += "&" + item.attr("name") + "=" + ajaxPostEnCode(item.val());
        }
    });
    $("textarea").each(function () {
        var item = $(this);
        if (item.attr("name")) {
            pd += "&" + item.attr("name") + "=" + ajaxPostEnCode(item.val());
        }
    });
    pd += "&m_f_k_r_n_d=" + Math.random();
    $.ajax({
        type: "Post",
        url: postUrl,
        data: pd,
        success: function (data) {
            if (IsJosn(data)) {
                var result = data.Result;
                var msg = data.Msg;
                var gourl = data.Gourl;
                if (msg && isAlert) {
                    alert(msg);
                }
                if (gourl) {
                    window.location.href = gourl;
                }
                if (callBack) {
                    callBack(data);
                }
                return false;
            }
            $("#TB_ajaxContent").html(data);
            return false;
        }
    });
    return false;
}
function showFastUpload(id, url, callback) {
    var sf = document.getElementById('sfupiframe_' + id);
    if (sf) {
        var fl = sf.contentWindow.document.getElementById('imgFile');
        $('#uploading' + id).show();
        if (fl) { fl.click(); FastUpload_Begin(id, url, callback); }
    }
}
var checkCount = 0;
function FastUpload_Begin(id, url, callback) {
    checkCount = 0;
    FastUpload_onupcheck(id, url, callback);
}
function FastUpload_onupcheck(id, url, callback) {
    checkCount = checkCount + 1;
    if (checkCount < 60) {
        var sf = document.getElementById('sfupiframe_' + id);
        var fcontent = $(sf.contentWindow.document.body).html();
        if (fcontent && IsStringJosn(fcontent)) {
            var resJson = jQuery.parseJSON(fcontent);
            if (resJson) {
                if (resJson.error == 0) {
                    if (callback) {
                        callback(resJson.fid);
                    }

                }
                else {
                    if (resJson.message) {
                        alert(resJson.message);
                    }
                }
                $('#uploading_' + id).hide();
                sf.contentWindow.location.href = url;
                return;
            }
        }
        else {
            var state = sf.contentWindow.document.getElementById('upstate');
            if (state) {
                if (state.value == "select") {
                    $('#uploading_' + id).hide();
                }
            }
        }
        setTimeout("FastUpload_onupcheck('" + id + "','" + url + "'," + callback + ");", 1000);
    }
    else {
        alert('上传失败！');
        $('#uploading' + id).hide();
    }
}